home *** CD-ROM | disk | FTP | other *** search
/ Aminet 35 / Aminet 35 (2000)(Schatztruhe)[!][Feb 2000].iso / Aminet / game / shoot / ADescentSrc.lha / descent / includes / physics.h < prev    next >
C/C++ Source or Header  |  1998-03-22  |  3KB  |  71 lines

  1. /*
  2. THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
  3. SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
  4. END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
  5. ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
  6. IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
  7. SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
  8. FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
  9. CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
  10. AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.  
  11. COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
  12. */
  13. /*
  14.  * $Source: /usr/CVS/descent/includes/physics.h,v $
  15.  * $Revision: 1.2 $
  16.  * $Author: tfrieden $
  17.  * $Date: 1998/03/22 15:23:44 $
  18.  * 
  19.  * Headers for physics functions and data
  20.  * 
  21.  * $Log: physics.h,v $
  22.  * Revision 1.2  1998/03/22 15:23:44  tfrieden
  23.  * removed lots of warning messages
  24.  *
  25.  * Revision 1.1.1.1  1998/03/03 15:12:00  nobody
  26.  * reimport after crash from backup
  27.  *
  28.  * Revision 1.1.1.1  1998/02/13  20:20:25  hfrieden
  29.  * Initial Import
  30.  */
  31.  
  32. #ifndef _PHYSICS_H
  33. #define _PHYSICS_H
  34.  
  35. #include "vecmat.h"
  36. #include "fvi.h"
  37.  
  38. //#define FL_NORMAL  0
  39. //#define FL_TURBO   1
  40. //#define FL_HOVER   2
  41. //#define FL_REVERSE 3
  42.  
  43. //these global vars are set after a call to do_physics_sim().  Ugly, I know.
  44. //list of segments went through
  45. extern int phys_seglist[MAX_FVI_SEGS],n_phys_segs;
  46.  
  47. // Read contrls and set physics vars
  48. void read_flying_controls( object * obj );
  49.  
  50. //Simulate a physics object for this frame
  51. void do_physics_sim(object *obj);
  52.  
  53. //tell us what the given object will do (as far as hiting walls) in
  54. //the given time (in seconds) t.  Igores acceleration (sorry) 
  55. //if check_objects is set, check with objects, else just with walls
  56. //returns fate, fills in hit time.  If fate==HIT_NONE, hit_time undefined
  57. //  Stuff hit_info with fvi data as set by find_vector_intersection.
  58. //for fvi_flags, refer to fvi.h for the fvi query flags
  59. int physics_lookahead(object *obj,fix t,int fvi_flags,fix *hit_time, fvi_info *hit_info);
  60.  
  61. //Applies an instantaneous force on an object, resulting in an instantaneous
  62. //change in velocity.
  63. void phys_apply_force(object *obj,vms_vector *force_vec);
  64. void phys_apply_rot(object *obj,vms_vector *force_vec);
  65.  
  66. //this routine will set the thrust for an object to a value that will
  67. //(hopefully) maintain the object's current velocity
  68. void set_thrust_from_velocity(object *obj);
  69.  
  70. #endif
  71.